package com.ymatou.im.api.testcase;

import com.ymttest.utils.YMTDateUtil;

import org.json.JSONObject;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.experimental.categories.Category;

import com.ymatou.im.api.parameter.SendNotifyBean;
import com.ymatou.im.api.service.SendNotifyCall;
import com.ymt.core.tool.Logger;
import com.ymt.utils.annotation.TestCase;
import com.ymt.utils.annotation.TestSuite;
import com.ymt.utils.tag.P1;
import com.ymt.utils.tag.P2;

/**
*发送通知接口
*FreeMaker Template自动生成代码
*/
@TestSuite
public class Ts_SendNotify{
	private static SendNotifyBean sendnotifyBean;
	private static SendNotifyCall sendnotifyCall;
	YMTDateUtil date = new YMTDateUtil();
	@BeforeClass
	public static void setUp() {
		Logger.createResultFile("发送通知接口");
	}

	@Before
	public void caseUp() {
		sendnotifyBean=new SendNotifyBean();
		sendnotifyCall=new SendNotifyCall();
	}

	@AfterClass
	public static void tearDown() {
		Logger.generateResult(sendnotifyCall.getOpurl());
	}

	@After
	public void caseDown() {
		Logger.end();
	}
	@SuppressWarnings({ "deprecation", "static-access" })
	@Test
	@Category(P1.class)
	@TestCase
	public void Tc_SendNotify_001() {
		Logger.start(true,"大号给用户发送通知成功");
		try {
			//TODO 补全case代码
			sendnotifyBean.setNotifySenderUserId(3791818);
			sendnotifyBean.setToUserId(30161607);
			sendnotifyBean.setMessage("这是通知内容  测试一下 dwtest");
			sendnotifyBean.setEndTime(date.getDate());
			sendnotifyBean.setPushTitle("哈尼 这是通知标题");
			sendnotifyBean.setIsComment(false);
			sendnotifyBean.setIsPushNotify(true);
			sendnotifyBean.setAppId("comments.iapi.ymatou.com");
			sendnotifyCall.setData(sendnotifyBean);
			sendnotifyCall.callService();
			
			Logger.comment("验证返回值");
			Logger.verifyEquals(200,new JSONObject(sendnotifyCall.getReturnData()).getInt("Status"), "响应报文-返回码");
			
		} catch (Exception e) {
			Logger.fail(e);
		}
	}
	@SuppressWarnings("static-access")
	@Test
	@Category(P1.class)
	@TestCase
	public void Tc_SendNotify_002() {
		Logger.start(true,"appid 为空 发送失败");
		try {
			//TODO 补全case代码
			sendnotifyBean.setAppId("");
			sendnotifyBean.setEndTime(date.getDate());
			sendnotifyBean.setMessage("这是通知内容  测试一下 dwtest");
			sendnotifyBean.setNotifySenderUserId(20001811);
			sendnotifyBean.setToUserId(4085);
			sendnotifyBean.setPushTitle("哈尼 这是通知标题");
			sendnotifyCall.setData(sendnotifyBean);
			sendnotifyCall.callService();	
			Logger.comment("验证返回值");
			Logger.verifyEquals(500,new JSONObject(sendnotifyCall.getReturnData()).getInt("Status"), "响应报文-返回码");
			
		} catch (Exception e) {
			Logger.fail(e);
		}
	}
	@SuppressWarnings("static-access")
	@Test
	@Category(P2.class)
	@TestCase
	public void Tc_SendNotify_003() {
		Logger.start(true,"接收消息用户不存在，发送通知失败");
		try {
			//TODO 补全case代码
			sendnotifyBean.setAppId("app.ymatou.com");
			sendnotifyBean.setEndTime(date.getDate());
			sendnotifyBean.setMessage("这是通知内容  测试一下 dwtest");
			sendnotifyBean.setNotifySenderUserId(20001811);
			sendnotifyBean.setToUserId(43);
			sendnotifyBean.setPushTitle("哈尼 这是通知标题");
			sendnotifyCall.setData(sendnotifyBean);
			sendnotifyCall.callService();
			Logger.comment("验证返回值");
			Logger.verifyEquals(500,new JSONObject(sendnotifyCall.getReturnData()).getInt("Status"), "响应报文-返回码");
			
		} catch (Exception e) {
			Logger.fail(e);
		}
	}
	@SuppressWarnings("static-access")
	@Test
	@Category(P2.class)
	@TestCase
	public void Tc_SendNotify_004() {
		Logger.start(true,"发送大号userid不存在，发送通知失败");
		try {
			//TODO 补全case代码
			sendnotifyBean.setAppId("app.ymatou.com");
			sendnotifyBean.setEndTime(date.getDate());
			sendnotifyBean.setMessage("这是通知内容  测试一下 dwtest");
			sendnotifyBean.setNotifySenderUserId(20001811);
			sendnotifyBean.setToUserId(43);
			sendnotifyBean.setPushTitle("哈尼 这是通知标题");
			sendnotifyCall.setData(sendnotifyBean);
			sendnotifyCall.callService();
			Logger.comment("验证返回值");
			Logger.verifyEquals(500,new JSONObject(sendnotifyCall.getReturnData()).getInt("Status"), "响应报文-返回码");
			
		} catch (Exception e) {
			Logger.fail(e);
		}
	}
	@SuppressWarnings("static-access")
	@Test
	@Category(P2.class)
	@TestCase
	public void Tc_SendNotify_005() {
		Logger.start(true,"发送消息内容长度超出2000个字符，发送通知失败");
		try {
			//TODO 补全case代码
			
			sendnotifyBean.setAppId("app.ymatou.com");
			sendnotifyBean.setEndTime(date.getDate());
			sendnotifyBean.setMessage("这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而");
			sendnotifyBean.setNotifySenderUserId(20001811);
			sendnotifyBean.setToUserId(4085);
			sendnotifyBean.setPushTitle("哈尼 这是通知标题");
			sendnotifyCall.setData(sendnotifyBean);
			sendnotifyCall.callService();				
			Logger.comment("验证返回值");
			Logger.verifyEquals(500,new JSONObject(sendnotifyCall.getReturnData()).getInt("Status"), "响应报文-返回码");
		} catch (Exception e) {
			Logger.fail(e);
		}
	}
	@SuppressWarnings("static-access")
	@Test
	@Category(P2.class)
	@TestCase
	public void Tc_SendNotify_006() {
		Logger.start(true,"发送消息内容长度为null，发送通知失败");
		try {
			//TODO 补全case代码
			sendnotifyBean.setAppId("app.ymatou.com");
			sendnotifyBean.setEndTime(date.getDate());
			sendnotifyBean.setMessage(null);
			sendnotifyBean.setNotifySenderUserId(20001811);
			sendnotifyBean.setToUserId(4085);
			sendnotifyBean.setPushTitle("哈尼 这是通知标题");
			sendnotifyCall.setData(sendnotifyBean);	
			sendnotifyCall.setData(sendnotifyBean);
			sendnotifyCall.callService();
			Logger.comment("验证返回值");
			Logger.verifyEquals(500,new JSONObject(sendnotifyCall.getReturnData()).getInt("Status"), "响应报文-返回码");
			
		} catch (Exception e) {
			Logger.fail(e);
		}
	}
	@Test
	@Category(P2.class)
	@TestCase
	public void Tc_SendNotify_007() {
		Logger.start(true,"结束显示时间格式不正确，发送通知失败");
		try {
			//TODO 补全case代码
			
			sendnotifyCall.setData(sendnotifyBean);
			sendnotifyCall.callService();
			Logger.comment("验证返回值");
			Logger.verifyEquals(500,new JSONObject(sendnotifyCall.getReturnData()).getInt("Status"), "响应报文-返回码");
			
		} catch (Exception e) {
			Logger.fail(e);
		}
	}
	@SuppressWarnings("static-access")
	@Test
	@Category(P2.class)
	@TestCase
	public void Tc_SendNotify_008() {
		Logger.start(true,"推送标题栏内容为null，发送通知成功");
		try {
			//TODO 补全case代码
			sendnotifyBean.setAppId("app.ymatou.com");
			sendnotifyBean.setEndTime(date.getDate());
			sendnotifyBean.setMessage("测试一下");
			sendnotifyBean.setNotifySenderUserId(20001811);
			sendnotifyBean.setToUserId(4085);
			sendnotifyBean.setPushTitle(null);
			sendnotifyCall.setData(sendnotifyBean);	
			sendnotifyCall.setData(sendnotifyBean);
			sendnotifyCall.callService();	
			Logger.comment("验证返回值");
			Logger.verifyEquals(200,new JSONObject(sendnotifyCall.getReturnData()).getInt("Status"), "响应报文-返回码");
			
		} catch (Exception e) {
			Logger.fail(e);
		}
	}
	@SuppressWarnings("static-access")
	@Test
	@Category(P2.class)
	@TestCase
	public void Tc_SendNotify_009() {
		Logger.start(true,"推送标题栏内容超出100个字符，发送通知失败");
		try {
			//TODO 补全case代码
			sendnotifyBean.setAppId("app.ymatou.com");
			sendnotifyBean.setEndTime(date.getDate());
			sendnotifyBean.setMessage("这是通知内容  测试一下 dwtest25234524352345问我认同问题特我让特认为台湾儿童而特维尔特认为特瑞特瑞特而特而");
			sendnotifyBean.setNotifySenderUserId(20001811);
			sendnotifyBean.setToUserId(4085);
			sendnotifyBean.setPushTitle("哈尼 这是通知标题超过100个字符测试测试和测试hi色发哈尼 这是通知标题超过100"
					+ "个字符测试测试和测试hi色发哈尼 这是通知标题超过100个字符测试测试和测试hi色发"
					+ "哈尼 这是通知标题超过100个字符测试测试和测试hi色发"
					+ "哈尼 这是通知标题超过100个字符测试测试和测试hi色发"
					+ "哈尼 这是通知标题超过100个字符测试测试和测试hi色发"
					+ "哈尼 这是通知标题超过100个字符测试测试和测试hi色发"
					+ "哈尼 这是通知标题超过100个字符测试测试和测试hi色发"
					+ "哈尼 这是通知标题超过100个字符测试测试和测试hi色发");
			sendnotifyCall.setData(sendnotifyBean);
			sendnotifyCall.callService();
			Logger.comment("验证返回值");
			Logger.verifyEquals(500,new JSONObject(sendnotifyCall.getReturnData()).getInt("Status"), "响应报文-返回码");
			
		} catch (Exception e) {
			Logger.fail(e);
		}
	}
}